package com.example.mangodb.repository;

import com.example.mangodb.domain.User;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @Author: 普发忠
 * @Date: 2021年09月18日  14时:16分:16秒
 *
 * 当前这个接口相当于mapper层
 * 当前接口的定义规则要继承MongoRepository需要贴上@Repository注解
 * 当前接口继承后要设计泛型 规则：实体类 加id的字段属性也可以是Mongodb的主键类型
 * 所有的crud都有Spring Data完成
 * MongoRespotory所有的继承都是接口并没有具体的实现类
 * 目的为了让Spring统一操作并简化对数据库的操作，具体的实现操作都有Spring data完成
 * Spring data可以操作关系型数据库也可以操作非关系型数据库
 * Spring data对Mongodb的操作是通过动态代理的方式实现的
 *
 */
@Repository
public interface UserRepository extends MongoRepository<User, String>{
/*
自定义的查询方法的方法名书写规则
    以findBy开头 + 参数（实体类中的参数 ， 并首字母大写）
 */
User findByName(String name);

User findByNameAndAge(String name, int age);

User findByIdAndName(String id, String age);

    
}
